/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package parismetro;

import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.scene.image.Image;
import javafx.scene.CustomNode;
import javafx.scene.input.MouseEvent;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.TextAlignment;
import modele.RoissyBus;
import modele.RERTicket;
import modele.OrlyBus;
import modele.OrlyVal;
import javafx.scene.CacheHint;

/**
 * @author Hadrien
 */
public class Aeroports extends CustomNode {

    var group: Group;
    public var main: Main;
    def font1 = Font { size: 32, name: "Myriad Pro", embolden: true }
    def font2 = Font { size: 18, name: "Myriad Pro", embolden: true }
    def font3 = Font { size: 24, name: "Myriad Pro", embolden: true }
    def backGround = ImageView {
                image: Image { url: "{__DIR__}icons/back_1-1.png" }
            //layoutX:0
            //layoutY:0
            }
    def cdg1 = Group {
                layoutX: 723
                layoutY: 18
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 120
                        width: 295
                        fill: Color.rgb(255, 78, 78);
                    }
                    Text {
                        layoutX: 25
                        layoutY: 30
                        font: font1
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Aéroport Charles\nDe Gaulle"
                    }
                    Text {
                        layoutX: 20
                        layoutY: 105
                        font: font2
                        fill: Color.BLACK
                        textAlignment: TextAlignment.CENTER
                        content: "Bus ROISSYBUS (5h45 à 23h45)"
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnRoissyBus", "optionSpeciaux");
                    var t:RoissyBus = RoissyBus{orderList:main.orderList};
                    main.orderList.addOrder(t);
                    main.optionEcran.previousStep = "aeroports";
                    main.changeContent("optionSpeciaux");
                }
            }
    def cdg2 = Group {
                layoutX: 416
                layoutY: 80
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 120
                        width: 275
                        fill: Color.rgb(255, 78, 78);
                    }
                    Text {
                        layoutX: 15
                        layoutY: 30
                        font: font1
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Aéroport Charles\nDe Gaulle"
                    }
                    Text {
                        layoutX: 110
                        layoutY: 105
                        font: font2
                        fill: Color.BLACK
                        textAlignment: TextAlignment.CENTER
                        content: "RER B"
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnCdgRerB", "tplus");
                    var t:RERTicket = RERTicket{orderList:main.orderList;startStation:Main.stationMachine;endStation:"Aéroport Charles de Gaulle"};
                    main.orderList.addOrder(t);
                    main.optionEcran.previousStep = "aeroports";
                    main.changeContent("tplus");
                }
            }
    def orly1 = Group {
                layoutX: 276
                layoutY: 222
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 120
                        width: 275
                        fill: Color.rgb(0, 142, 250);
                    }
                    Text {
                        layoutX: 75
                        layoutY: 30
                        font: font1
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Aéroport\nd'Orly"
                    }
                    Text {
                        layoutX: 78
                        layoutY: 105
                        font: font2
                        fill: Color.BLACK
                        textAlignment: TextAlignment.CENTER
                        content: "RER C + Bus"
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnOrlyRerC", "tplus");
                    var t:RERTicket = RERTicket{orderList:main.orderList;startStation:Main.stationMachine;endStation:"Pont de Rungis-Aéroport d'Orly"};
                    main.orderList.addOrder(t);
                    main.optionEcran.previousStep = "aeroports";
                    main.changeContent("tplus");
                }
            }
    def orly2 = Group {
                layoutX: 231
                layoutY: 390
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 120
                        width: 275
                        fill: Color.rgb(0, 142, 250);
                    }
                    Text {
                        layoutX: 75
                        layoutY: 30
                        font: font1
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Aéroport\nd'Orly"
                    }
                    Text {
                        layoutX: 35
                        layoutY: 105
                        font: font2
                        fill: Color.BLACK
                        textAlignment: TextAlignment.CENTER
                        content: "RER B + Orlyval (6h à 23h)"
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnOrlyVal", "optionSpeciaux");
                    var t:OrlyVal = OrlyVal{orderList:main.orderList;startStation:"Paris"};
                    main.orderList.addOrder(t);
                    main.optionEcran.previousStep = "aeroports";
                    main.changeContent("optionSpeciaux");
                }
            }
    def orly3 = Group {
                layoutX: 440
                layoutY: 541
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 120
                        width: 275
                        fill: Color.rgb(0, 142, 250);
                    }
                    Text {
                        layoutX: 75
                        layoutY: 30
                        font: font1
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Aéroport\nd'Orly"
                    }
                    Text {
                        layoutX: 100
                        layoutY: 112
                        font: font2
                        fill: Color.BLACK
                        textAlignment: TextAlignment.CENTER
                        content: "OrlyBus"
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnOrlyBus", "optionSpeciaux");
                    var t:OrlyBus = OrlyBus{orderList:main.orderList};
                    main.orderList.addOrder(t);
                    main.optionEcran.previousStep = "aeroports";
                    main.changeContent("optionSpeciaux");
                }
            }
    def aide = Group {
                layoutX: 760
                layoutY: 575
                content: [
                    Rectangle {
                        arcHeight: 20
                        arcWidth: 20
                        height: 160
                        width: 260
                        fill: Color.rgb(0, 169, 157);
                    }
                    Text {
                        layoutX: 30
                        layoutY: 30
                        font: font3
                        fill: Color.WHITE
                        textAlignment: TextAlignment.CENTER
                        content: "Si vous ne savez pas\nquel ticket choisir,\ncliquez ici pour avoir\nune description plus\ndetaillée."
                    }
                ]
                onMousePressed:function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnAideAeroports", "dialog");
                    main.dialog.titre = "Desserte des aéroports";
                    main.dialog.corps = "OrlyVal est une liaison en métro automatique entre les aéroports d'Orly et la gare d'Antony RER.\nTemps de trajet estimé depuis Châtelet-Les-Halles : 33 minutes.\nTemps de trajet estimé depuis Denfert-Rochereau : 25 minutes."
                    "\n\nOrlyBus est une liaison en navette bus entre les aéroports d'Orly et la place Denfert-Rochereau.\nTemps de trajet estimé depuis Denfert-Rochereau : 30 minutes."
                    "\n\nPour accèder à l'aéroport d'Orly, il est aussi possible de prendre la liaison ferrée entre Paris (Invalides, St Michel - Notre-Dame, Austerlitz) et la gare de Pont de Rungis-Aéroport d'Orly (RER C). Une navette Bus est disponible en sortie de gare pour la liaison avec les aérogares.\nTemps de trajet estimé : 25 minutes."
                    "\n\nRoissyBus est une liaison bus entre Paris-Opéra et l'aéroport Charles de Gaulle.\nTemps de trajet estimé depuis Opéra : 60 minutes."
                    "\n\nPour accèder à l'aéroport Charles de Gaulle, il est aussi possible de prendre la liaison ferrée entre Paris (Denfert-Rochereau, Saint-Michel-Notre-Dame, Gare du Nord) et l'Aéroport Charles de Gaulle 2 (RER B). Une navette CDGVal gratuite est à disposition entre les gares et les terminaux.\nTemps de trajet estimé depuis Châtelet-Les-Halles : 28 minutes.\nTemps de trajet estimé depuis Denfert-Rochereau : 35 minutes.";
                    main.dialog.largeur = 850;
                    main.dialog.hauteur = 600;
                    main.dialog.afficher = true;
                }
            }
    def bouton_annuler_tout = Group {
                layoutX: 10;
                layoutY: 644;
                //effect: shadow;
                content: [
                    Rectangle {
                        height: 95
                        width: 100
                        arcWidth: 15, arcHeight: 15
                        fill: Color.rgb(255, 115, 89)
                        stroke: Color.WHITE;
                        strokeWidth: 5;
                    }
                    Text {
                        layoutX: 10, layoutY: 40
                        font: Font { size: 22, embolden: true, name: "Myriad Pro" }
                        content: "Annuler\nTout"
                        textAlignment: TextAlignment.CENTER
                        fill: Color.WHITE
                    }
                ]
                onMousePressed: function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnAnnulerTout", "accueil");
                    main.orderList.removeAll();
                    main.changeContent("accueil");
                }
            }
    def bouton_etape_prec = Group {
                layoutX: 120;
                layoutY: 644;
                //effect: shadow;
                content: [
                    Rectangle {
                        height: 95
                        width: 102
                        arcWidth: 15, arcHeight: 15
                        fill: Color.rgb(0, 113, 188)
                        stroke: Color.WHITE;
                        strokeWidth: 5;
                    }
                    Text {
                        layoutX: 1, layoutY: 40
                        font: Font { size: 19, embolden: true, name: "Myriad Pro" }
                        content: "Etape\nPrécédente"
                        textAlignment: TextAlignment.CENTER
                        fill: Color.WHITE
                    }
                ]
                onMousePressed: function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnEtapePrec", "accueil");
                    main.changeContent("accueil");
                }
            }
    def bouton_pay = Group {
                layoutX: 5;
                layoutY: 435;
                visible: bind Main.orderList.orders.size() > 0
                content: [
                    Rectangle {
                        height: 100
                        width: 220
                        arcWidth: 20, arcHeight: 20
                        fill: Color.rgb(0, 169, 157)
                        stroke: Color.WHITE;
                        strokeWidth: 5;
                    }
                    Text {
                        layoutX: 30, layoutY: 40
                        font: Font { size: 32, embolden: true, name: "Myriad Pro" }
                        content: "Payer ma\ncommande"
                        textAlignment: TextAlignment.CENTER
                        fill: Color.WHITE
                    }
                ]
                onMousePressed: function(e: MouseEvent): Void {
                    main.logger.addEvent("aeroports", "btnPay", "paiement");
                    main.optionEcran.previousStep2 = "optionSpeciaux";
                    main.changeContent("paiement")
                }
            }
    var cart = Cart {
                orderList: main.orderList;
                layoutX: 5
                layoutY: 5
            }

    override public function create(): Node {
        group = Group { content: [
                        backGround, cdg1, cdg2, orly1, orly2, orly3, aide, bouton_annuler_tout, cart, bouton_etape_prec, bouton_pay
                    ]
                    cache:true;
                    cacheHint: CacheHint.SPEED;
                }
        return group;
    }

}
